Embodiments of the present invention relate generally to a system and method for performing matrix multiplication, and more particularly to multiplying a vector by a matrix in a direct-sequence CDMA system.
A direct-sequence CDMA system is one form of a spread spectrum system for transmitting and receiving information. In a spread spectrum system, a transmitted signal is effectively spread over a wide band of frequencies. The wide band of frequencies is typically much wider than a minimum bandwidth of frequencies needed to transmit the information. The advantages of spreading a signal to be transmitted over a wide band of frequencies include interference rejection, secure communications, and code division multiplexing (using code sequences as information channels within a common radio channel, i.e. CDMA). CDMA allows the same band of frequencies to be shared with many users.
The direct-sequence method is a well-known and widely used spread spectrum technique that is easily implemented. In the direct-sequence method, a relatively narrow band transmit signal is modulated by a code sequence to create a wide band signal. Typically, the code sequence comprises a pseudo-random code having a fixed length. The rate of the code sequence is the chip rate where a chip corresponds to an element in the code sequence. The amount of spreading achieved is determined by the number of chips per transmit symbol in the original transmit signal.
When a transmitted spread spectrum signal is received, the signal must be de-spread to recover the original information. The method of de-spreading a signal is classified as a correlation process. De-spreading is typically accomplished by multiplying the spread spectrum signal with a copy of the code upon reception. As a result, the original transmitted signal may be recovered.
Different receivers may be accessed or addressed separately by designating a different code to each receiver. Codes may also be selected that have low cross correlation properties to reduce the potential for interference between receivers.
Often, the signals to be transmitted are digital signals that are represented as vectors of information symbols. Each symbol in a vector may correspond to a different information channel to be transmitted. A vector of information symbols may be coded or spread by multiplying the vector by a matrix of direct-sequence codes (one code per symbol in the vector) to form a spread spectrum vector to be transmitted.
Upon reception, the spread spectrum vector is de-spread by multiplying the spread spectrum vector by the inverse of the matrix of direct-sequence codes, therefore recovering the original vector of information symbols.
The matrix multiplication operations, if performed by brute force, require many multiplication and addition/subtraction operations, especially if the matrix of direct-sequence codes is of any significant size such as, for example, 128 elements by 128 elements. Matrix multiplication is often performed by, at least in part, a number of accumulators that accumulate the multiplied results for each code as the chip data becomes available. Assuming there are N different codes and Q chips per spread symbol in total, then a brute force implementation requires N×Q additions/subtractions for both spreading and de-spreading. Each operation translates into additional cost, hardware, and power consumption in the CDMA system.
It is desirable to greatly reduce the number of operations that are performed during the matrix multiplication process of the spreading and de-spreading functions in order to reduce cost, hardware, and power consumption in a direct-sequence CDMA system.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with embodiments of the present invention as set forth in the remainder of the present application with reference to the drawings.